package org.znxs.znagent_s.rag.myDefinition.githubDocumentReader;

import com.alibaba.cloud.ai.document.DocumentParser;
import com.alibaba.cloud.ai.document.TextDocumentParser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.document.Document;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 自定义github 文档读取器，但是有缺点，无法自定义拆分，需要调用远程拆分服务
 */
@Slf4j
@Component
public class LoveAppGithubDocumentLoader {

    /**
     * 仓库作者
     */
    private static final String TEST_OWNER = "znxs-dev";

    /**
     * 仓库名称
     */
    private static final String TEST_REPO = "BlogConfig";

    private final DocumentParser parser = new TextDocumentParser();


    private MyGithubDocumentReader reader;

    @Value("${com.github.token}")
    private String GITHUB_TOKEN;

    public List<Document> loadGithubDocument() {

        // 获取github 相关参数
        if (GITHUB_TOKEN != null && !GITHUB_TOKEN.isEmpty()) {
            // todo 这里需要从外部传 而不是内部定义
            GitHubResource resource = GitHubResource.builder()
                    .gitHubToken(GITHUB_TOKEN)
                    .owner(TEST_OWNER)
                    .repo(TEST_REPO)
                    .branch("master")
                    .path("Es6.md")
                    .build();

            // 初始化项目
            reader = new MyGithubDocumentReader(resource, parser);
        }

        List<Document> documents = reader.get();
        return documents;
    }

}
